iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0

層次聚類( Hierarchical Clustering )

將資料集中的資料點分為不同群集的方法,群集之間形成一種層次結構,代表可以查看不同層次的群集結構,從單個資料點開始,慢慢合併成更大的群集,或從整個資料集開始,慢慢分裂成更小的群集

  • 凝聚層次聚類 將每個資料點看作單獨的群集,然後合併最相似的群集,直到每個資料點都屬於一個大的群集
  • 分裂層次聚類 將整個資料集看作大群集,然後將分成更小的子群集,直到每個資料點都是一個單獨的群集

距離計算方式

Single linkage

計算兩個群集之間所有成對樣本之間的距離,選擇最小的成對樣本距離
偏向於將相似的樣本聚在一起,可能會產生長細的群集
群集 A 與群集 B 之間的距離:
https://chart.googleapis.com/chart?cht=tx&chl=%5C%5Bd(A%2C%20B)%20%3D%20%5Cmin_%7Bx%20%5Cin%20A%2C%20y%20%5Cin%20B%7D%20%5Ctext%7Bdistance%7D(x%2C%20y)%5C%5D

d(A,B) 表示群集 A 與群集 B 之間的距離
distance(x,y) 表示樣本 x 與樣本 y 之間的距離

Maximum (Complete) linkage

計算兩個群組之間所有成對樣本之間的距離,選擇最大的成對樣本距離
偏向於將相似度較低的樣本聚在一起,產生較平衡的群集大小
群集 A 與群集 B 之間的距離:
https://chart.googleapis.com/chart?cht=tx&chl=%5C%5Bd(A%2C%20B)%20%3D%20%5Cmax_%7Bx%20%5Cin%20A%2C%20y%20%5Cin%20B%7D%20%5Ctext%7Bdistance%7D(x%2C%20y)%5C%5D

Average linkage

計算兩個群組之間所有成對樣本之間的距離,取這些距離的平均值
是一種平衡的方法,通常可以得到比較好的結果
群集 A 與群集 B 之間的距離:
https://chart.googleapis.com/chart?cht=tx&chl=%5C%5Bd(A%2C%20B)%20%3D%20%5Cfrac%7B1%7D%7B%7CA%7C%20%5Ccdot%20%7CB%7C%7D%20%5Csum_%7Bx%20%5Cin%20A%2C%20y%20%5Cin%20B%7D%20%5Ctext%7Bdistance%7D(x%2C%20y)%5C%5D

優缺點

優點

  1. 簡單易懂,不需要事先指定群組數量
  2. 可視化結果,理解資料的層次群組結構
  3. 適用於不同資料型態
  4. 能夠捕捉層次結構

缺點

  1. 計算複雜度高,不適合大資料集
  2. 對噪聲和異常值敏感
  3. 不可逆,難以調整

參考資料

https://pyecontech.com/2020/06/12/hierarchical_clustering/
https://zh.wikipedia.org/zh-tw/%E5%B1%82%E6%AC%A1%E8%81%9A%E7%B1%BB


上一篇
物以類聚~k-平均演算法
下一篇
深入探險~深度學習的基本概念
系列文
機器學習新手行,相信你也行!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言